AMD EPYCで性能向上!EC2インスタンス最適化ガイドのご紹介
こんにちは。ゲームソリューション部の出村です。
みなさん、EC2利用していますか? ここではAMDから配布されている資料である「TURNING GUIDE Amazon EC2 Instances Powered by 1st-4th Gen AMD EPYC™ Processors 」をご紹介します。ここに書かれていることを実施することでEC2の処理性能をアップさせることができます。
この資料はどなたでも読めます。ダウンロードして一読しておくと今後何かしら役に立つことがあるでしょう。
この資料は何?
この資料はEPYC(AMD社製のCPU)が搭載されているEC2をより効率的に利用する、もしくは実行効率の改善の手法が多岐にわたって紹介されています。
内容について
記載されている内容が、インスタンスの選定方法、パフォーマンスの改善、コストの最適化など多岐に渡っています。ここではその一部を紹介します。
目的別のEC2インスタンスの選び方
利用目的に適したEC2インスタンスはどれか?という項目があります。たとえば、Webサーバー、データ分析、データベース、AI/MLなど目的別に適したインスタンスが何が適しているのか解説しています。
たとえばWebサーバーに適したEC2として以下のインスタンスが推奨されています。
- C7a
- M7a
- C6a
- M6a
アプリケーションの処理性能アップ方法
稼働しているアプリケーションの処理能力を向上させる方法としては次の方法が紹介されています。
まずはAMDから提供されているライブラリを活用する方法です。
AMDから、AMD Optimizing CPU Libraries(AOCL)というC言語向けライブラリが配布されています。それをリンクすることにより、EPYCの性能をより発揮しやすいアプリケーションとなります。
またL3キャッシュを最大限利用するため、以下のコマンドを実行するとよいと書かれています(11ページ 3.Maximize L3 cache usage)。
$ taskset -c 0-3 your_application
ここに取り上げた内容は一部であり、他にもコンテナ利用時の最適な設定なども書かれています。
まとめ
AWSから提供されているライブラリ(開発環境)は、x86_64アーキテクチャにむけて動作することを前提に提供されているため、EPYCが本来もつ性能を発揮しにくいコードで構成となっています。
EPYCを搭載したEC2インスタンスを利用するのであれば、先に記載されていることを実行することでEPYCを搭載したEC2インスタンスの性能をより発揮することができるようになります。
同じインスタンス料金を払うのであれば、より実行効率が良い方がお得です。